/**
 * Created by IntelliJ IDEA.
 * User: Fatadeild Hagkaups
 * Date: 16.11.2011
 * Time: 23:37
 *
 * Þessi klasi er POJO klasi fyrir leikmennina.
 */
public class Player
{
    /**
     * Meðlimabreytur.
     */
    protected String playerName;
    protected char mark;
    protected int countWin;
    protected int countLoss;

    /**
     * Smiðir.
     */
    public Player(char mark)
    {
        this.mark = mark;
    }

    public Player (String playerName)
    {
        this.playerName = playerName;
    }
    public Player(String playerName, char mark) {
        this.playerName = playerName;
        this.mark = mark;
        this.countWin = 0;
        this.countLoss = 0;
    }

    /**
     * Get fall sem skilar playerName
     * @return - skilar nafninu á leikmanninum
     */
    public String getPlayerName() {
        return playerName;
    }

    /**
     * Setur gildi í meðlimabreytuna playerName
     * @param playerName
     */
    public void setPlayerName(String playerName) {
        this.playerName = playerName;
    }

    /**
     * Get fall sem skilar mark.
     * @return - skilar hvaða merki.
     */
    public char getMark() {
        return mark;
    }

    /**
     * Setur gildi í meðlimabreytuna mark.
     * @param mark
     */
    public void setMark(char mark) {
        this.mark = mark;
    }

    /**
     * Get fall sem skilar countWin
     * @return - skilar hversu oft er búinn að vinna.
     */
    public int getCountWin() {
        return countWin;
    }

    /**
     * Setur gildi í meðlimabreytuna countWin.
     * @param countWin
     */
    public void setCountWin(int countWin) {
        this.countWin = countWin;
    }

    /**
     * Get fall sem skilar countLoss
     * @return - skilar hversu oft hann er búinn að tapa.
     */
    public int getCountLoss() {
        return countLoss;
    }

    /**
     * Setur gildi í meðlimabreytuna countLoss
     * @param countLoss
     */
    public void setCountLoss(int countLoss) {
        this.countLoss = countLoss;
    }

    /**
     * Fall sem sér um að auka hversu oft þessi leikmaður er búinn að vinna
     */
    public void incrementWin(){
        this.countWin++;
    }

    /**
     * Fall sem sér um að auka hversu oft þessi leikmaður er búinn að tapa.
     */
    public void incrementLoss(){
        this.countLoss++;
    }

    /**
     * Yfirskrifað toString fall sem skilar statistics hjá ákveðnum leikmanni..
     * @return - skilar statistics hjá þessum leikmanni.
     */
    @Override
    public String toString() {
        return "\n" +this.playerName + " Statistics: \nTotal win: " + this.countWin + "\nTotal losses: " + this.countLoss;
    }
}
